Crypto Browser

Installation
npm install @casual-simulation/crypto-browser
Usage
import { BrowserSigningCryptoImpl } from '@casual-simulation/crypto-browser';
async function demo() {
let algorithm = 'ECDSA-SHA256-NISTP256';
let crypto = new BrowserSigningCryptoImpl(algorithm);
console.log('Crypto Supported: ', crypto.supported());
let [publicKey, privateKey] = await crypto.generateKeyPair();
let exportedPubKey = await crypto.exportKey(publicKey);
let exportedPrivateKey = await crypto.exportKey(privateKey);
console.log('Public Key: ', exportedPubKey);
console.log('Private Key: ', exportedPrivateKey);
let data = new Int32Array(100);
for (let i = 0; i < data.length; i++) {
data[i] = Math.floor(Math.random() * 100);
}
let signature = crypto.sign(privateKey, data);
let valid = crypto.verify(publicKey, signature, data);
console.log('Valid: ', valid);
}
demo();